package com.xiaoshuidi.cloud.module.member.api.coupon.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class CouponCustomerInfoVo {

    @Schema(description ="优惠券id")
    private Long id;

    @Schema(description ="租客id")
    private Long userId;

    @Schema(description ="客户优惠券id")
    private Long couponId;

    @Schema(description ="优惠券名称")
    private String couponName;

    @Schema(description =" 优惠券类型 1预定优惠|2老带新优惠|3新签约优惠|4 内部员工优惠|5其他优惠")
    private Integer couponType;

    @Schema(description ="有效时间-起始日期")
    private Date startTime;

    @Schema(description ="有效时间-截止日期")
    private Date endTime;

    @Schema(description ="使用状态 1待使用 |2 已作废|3已使用|4已过期")
    private Integer usageStatus;

    @Schema(description ="使用规则")
    private String useRules;

    @Schema(description ="优惠类型 0-立减   1-折扣")
    private Integer preferentialContentType;

    @Schema(description ="实际优惠 优惠类型为立减时为金额，为折扣时对应几折")
    private BigDecimal realityPreferentialAmount;

    @Schema(description ="优惠金额")
    private BigDecimal preferentialAmount;

    @Schema(description = "使用叠加 空 表示不可与任何优惠券一起使用| 1与同一优惠可叠加使用|2 与其他活动可叠加使用")
    private String couponUseOverlay;
    /**
     * 优惠金额 或者百分比
     */
    private BigDecimal marginPreference;
    /**
     * 老客 优惠类型| 0 立减|1 折扣
     */
    private Integer preferentialContentTypeOld;
    /**
     * 老客 优惠金额 或者百分比
     */
    private BigDecimal marginPreferenceOld;
    /**
     * 优惠券总库存量  -1 没有限制
     */
    private Long stock;
    /**
     * 优惠券剩余量 -1没有限制
     */
    private Long surplusStock;
    /**
     * 发券总量
     */
    private Long sendStock;
    /**
     * 优惠券使用量
     */
    private Long couponUsage;
    /**
     * 活动开始时间
     */
    private Date activityStartTime;
    /**
     * 活动结束时间
     */
    private Date activityEndTime;
    /**
     * 活动门店 -1不限制门店
     */
    private Long activityStore;
    /**
     * 预定开始时间
     */
    private Date scheduledStartTime;
    /**
     * 预定结束时间
     */
    private Date scheduledEndTime;
    /**
     * 预定金额
     */
    private BigDecimal scheduledAmount;
    /**
     * 最低租赁月份
     */
    private Integer miniLeaseMonth;
    /**
     * 最高租赁月份
     */
    private Integer maxLeaseMonth;
    /**
     * 签约开始日期
     */
    private Date signingStartTime;
    /**
     * 签约结束时间
     */
    private Date signingEndTime;
    /**
     * 使用类型 1合同期类有效 2 发券后多少天 3 固定日期
     */
    private Integer couponUsageTimeType;
    /**
     * 使用日期 -1 合同期内有效 | 大于0 发券后多少天有效
     */
    private Integer couponUsageTime;
    /**
     * 使用开始时间
     */
    private Date expirationStartTime;
    /**
     * 使用结束时间
     */
    private Date expirationEndTime;
    /**
     * 发券数量限制 -1 不限制|大于0 限制张数
     */
    private Integer quantityLimit;
}
